package com.lyx.user.entity;

import com.google.common.collect.Lists;
import com.jx.sms.config.SmsType;
import com.jx.sms.core.entity.SmsParam;
import lombok.Data;

import java.util.List;
import java.util.stream.Collectors;

/**
 * @author 14667
 * @date 2022/7/18 16:18
 */
@Data
public class SmsSend {
    /**
     * 短信类型 通知短信：notice，营销短信：market，verification：验证码
     */
    private SmsType type;

    /**
     * 模版id 优先于短信内容
     */
    private String templateId;

    /**
     * 短信内容 和模版id至少一个不为空
     */
    private String content;

    /**
     * 签名 优先级大于配置的签名
     */
    private String signature;

    /**
     * 电话号码以及变量值
     */
    private List<SmsParam> smsParams = Lists.newArrayList();

    /**
     * 发送时间 可以为空 为空表示立即发送 大于当前时间表示定时发送  最大支持延时7天进行发送
     */
    private String sendTime;

    /**
     * 设置电话号码
     *
     * @param phones
     * @return
     */
    public SmsSend setPhones(List<String> phones) {
        smsParams = phones.stream().map(phone -> new SmsParam(phone, null)).collect(Collectors.toList());
        return this;
    }
}
